x86: make domain_spin_lock_irq_desc() a wrapper of pirq_spin_lock_irq_desc()
authorJan Beulich <jbeulich@novell.com>
Fri, 1 Jul 2011 19:45:21 +0000 (20:45 +0100)
committerJan Beulich <jbeulich@novell.com>
Fri, 1 Jul 2011 19:45:21 +0000 (20:45 +0100)
...and drop the now unused struct domain * parameter of the latter.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vmsi.c
xen/arch/x86/irq.c
xen/drivers/passthrough/io.c
xen/include/xen/irq.h

index fd020412290da2b213822dcb9716d703dcfdff7e..1a5bc5b6f4fbfad20116a08822e1034ab2f43bb0 100644 (file)
@@ -258,7 +258,7 @@ static int hvm_migrate_pirq(struct domain *d, struct hvm_pirq_dpci *pirq_dpci,
          (pirq_dpci->gmsi.dest_vcpu_id == v->vcpu_id) )
     {
         struct irq_desc *desc =
-            pirq_spin_lock_irq_desc(d, dpci_pirq(pirq_dpci), NULL);
+            pirq_spin_lock_irq_desc(dpci_pirq(pirq_dpci), NULL);
 
         if ( !desc )
             return 0;
index f50ec88b79fa9417ed7cbd902bc37d87cd2e1712..9db092befdf524805bd99bb466e483db28431e61 100644 (file)
@@ -375,7 +375,7 @@ int msixtbl_pt_register(struct domain *d, struct pirq *pirq, uint64_t gtable)
     if ( !new_entry )
         return -ENOMEM;
 
-    irq_desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+    irq_desc = pirq_spin_lock_irq_desc(pirq, NULL);
     if ( !irq_desc )
     {
         xfree(new_entry);
@@ -422,7 +422,7 @@ void msixtbl_pt_unregister(struct domain *d, struct pirq *pirq)
     ASSERT(spin_is_locked(&pcidevs_lock));
     ASSERT(spin_is_locked(&d->event_lock));
 
-    irq_desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+    irq_desc = pirq_spin_lock_irq_desc(pirq, NULL);
     if ( !irq_desc )
         return;
 
index b46fa9b8cb1d46b74932482cd3d30a6f1af3ea12..ac8bfa9d795e57f930ab8eca18f39b3b29e17155 100644 (file)
@@ -946,32 +946,16 @@ static void __do_IRQ_guest(int irq)
 struct irq_desc *domain_spin_lock_irq_desc(
     struct domain *d, int pirq, unsigned long *pflags)
 {
-    int irq;
-    unsigned long flags;
-    struct irq_desc *desc;
+    const struct pirq *info = pirq_info(d, pirq);
 
-    for ( ; ; )
-    {
-        irq = domain_pirq_to_irq(d, pirq);
-        if ( irq <= 0 )
-            return NULL;
-        desc = irq_to_desc(irq);
-        spin_lock_irqsave(&desc->lock, flags);
-        if ( irq == domain_pirq_to_irq(d, pirq) )
-            break;
-        spin_unlock_irqrestore(&desc->lock, flags);
-    }
-
-    if ( pflags != NULL )
-        *pflags = flags;
-    return desc;
+    return info ? pirq_spin_lock_irq_desc(info, pflags) : NULL;
 }
 
 /*
  * Same with struct pirq already looked up.
  */
 struct irq_desc *pirq_spin_lock_irq_desc(
-    struct domain *d, const struct pirq *pirq, unsigned long *pflags)
+    const struct pirq *pirq, unsigned long *pflags)
 {
     struct irq_desc *desc;
     unsigned long flags;
@@ -1179,7 +1163,7 @@ void pirq_guest_eoi(struct domain *d, struct pirq *pirq)
     struct irq_desc *desc;
 
     ASSERT(local_irq_is_enabled());
-    desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+    desc = pirq_spin_lock_irq_desc(pirq, NULL);
     if ( desc )
         desc_guest_eoi(d, desc, pirq);
 }
@@ -1338,7 +1322,7 @@ int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
     BUG_ON(!local_irq_is_enabled());
 
  retry:
-    desc = pirq_spin_lock_irq_desc(v->domain, pirq, NULL);
+    desc = pirq_spin_lock_irq_desc(pirq, NULL);
     if ( desc == NULL )
     {
         rc = -EINVAL;
@@ -1541,7 +1525,7 @@ void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
     WARN_ON(!spin_is_locked(&d->event_lock));
 
     BUG_ON(!local_irq_is_enabled());
-    desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+    desc = pirq_spin_lock_irq_desc(pirq, NULL);
 
     if ( desc == NULL )
     {
@@ -1576,7 +1560,7 @@ static int pirq_guest_force_unbind(struct domain *d, struct pirq *pirq)
     WARN_ON(!spin_is_locked(&d->event_lock));
 
     BUG_ON(!local_irq_is_enabled());
-    desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+    desc = pirq_spin_lock_irq_desc(pirq, NULL);
     BUG_ON(desc == NULL);
 
     if ( !(desc->status & IRQ_GUEST) )
index 5f39d6b934d30f8ce41564c549e2cd5898941273..13260dc768c829288d2de44e56cb419059e90e42 100644 (file)
@@ -432,7 +432,7 @@ static void __msi_pirq_eoi(struct domain *d, struct hvm_pirq_dpci *pirq_dpci)
         struct pirq *pirq = dpci_pirq(pirq_dpci);
 
          BUG_ON(!local_irq_is_enabled());
-         desc = pirq_spin_lock_irq_desc(d, pirq, NULL);
+         desc = pirq_spin_lock_irq_desc(pirq, NULL);
          if ( !desc )
             return;
 
index b771fa2d75cf9ecfc455555ac1f97f0d5317c2aa..a9193e6d6170d9764a2e682e0dc62e493b044f30 100644 (file)
@@ -171,7 +171,7 @@ extern void pirq_set_affinity(struct domain *d, int irq, const cpumask_t *);
 extern irq_desc_t *domain_spin_lock_irq_desc(
     struct domain *d, int irq, unsigned long *pflags);
 extern irq_desc_t *pirq_spin_lock_irq_desc(
-    struct domain *, const struct pirq *, unsigned long *pflags);
+    const struct pirq *, unsigned long *pflags);
 
 static inline void set_native_irq_info(unsigned int irq, const cpumask_t *mask)
 {